﻿using System;
using System.Collections.Generic;
using System.Linq;

namespace OSESServer
{
    public class Tool
    {
        public static int[] StringArrToIntArr(string[] strArr)
        {
            int[] nArr = new int[strArr.Length];
            for (int i = 0; i < strArr.Length; i++)
            {
                try
                {
                    int n = Int32.Parse(strArr[i]);
                    nArr[i] = n;
                }
                catch (Exception)
                {
                    return null;
                }
            }

            return nArr;
        }

        //打印日志
        public static void PrintLog(string log)
        {

        }

        #region 把一个集合平均分组后，最后不满一组的放到最后一个分组中
        /// <summary>
        /// 把一个集合平均分组，最后不满一组的放到最后一个分组中
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Lists"></param>
        /// <param name="num"></param>
        /// <returns></returns>
        public static List<List<T>> SpiltList<T>(List<T> Lists, int num) //where T:class
        {
            List<List<T>> fz = new List<List<T>>();
            //元素数量大于等于 分组数量
            if (Lists.Count >= num)
            {
                int avg = Lists.Count / num; //每组数量
                int vga = Lists.Count % num; //余数
                for (int i = 0; i < num; i++)
                {
                    List<T> cList = new List<T>();
                    if (i + 1 == num)
                    {
                        cList = Lists.Skip(avg * i).ToList<T>();
                    }
                    else
                    {
                        cList = Lists.Skip(avg * i).Take(avg).ToList<T>();
                    }
                    fz.Add(cList);
                }
            }
            else
            {
                fz.Add(Lists);//元素数量小于分组数量
            }
            return fz;
        }
        #endregion

    }
}
